package br.com.syshealth.clinica.session;

import java.util.List;
import java.util.Set;


import javax.ejb.Stateless;
import javax.ejb.TransactionAttribute;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

import javax.persistence.PersistenceContext;

import org.hibernate.Session;
import org.hibernate.criterion.Example;

import com.sun.xml.ws.api.tx.at.Transactional;

import br.com.syshealth.clinica.entity.Admin;
import br.com.syshealth.clinica.entity.Medico;
import br.com.syshealth.clinica.entity.Paciente;
import br.com.syshealth.clinica.entity.Pessoa;
//import br.com.syshealth.clinica.entity.Tipo;

@Stateless 
public class PessoaDAO {
	
	


	@PersistenceContext(unitName="clinica-syshealth-core")
	private EntityManager em;
	
	
	
	
	
	public Pessoa getBean(int id) {
		Pessoa bean = (Pessoa)em.find(Pessoa.class, id);
		return bean;
	}
	
	
	
	
	public Pessoa validaLogin(String user,String senha)
	{     Pessoa pessoa = null;
	  try{
			Query query = em.createQuery("select p from Pessoa p where login='"+user+"' and senha='"+senha+"'");
			  pessoa= (Pessoa) query.getSingleResult(); 
			  System.out.println("PEGANDO TIPOPOPPOPOPOPOPOOOP");
			 
	  }catch(Exception e)
	  {
		  e.printStackTrace();
	  }
		return pessoa;
	}
	
	
	public void atualizar(Pessoa bean){
		Object ent = em.merge(bean);
		System.out.println("atualizando");
		em.persist(ent);
	}
	
	
	
	public void deletar(Pessoa bean) {
		Object ent = em.merge(bean);
		em.remove(ent);
	}
		
	
	public Admin getBeanAdminCpf(String cpf) {
		Admin	admin = null;
		System.out.println("aquiuiiuiuiuiuiuiuiuiuiuiu");
		try{
			Query query = em.createQuery("select p from Admin p where cpf ='"+cpf+"'");
			admin = (Admin) query.getSingleResult();
			
			System.out.println(admin.getCpf()+"aquiuiiuiuiuiuiuiuiuiuiuiu");
		}catch(Exception e){   }
		return admin;
	}
	public void atualizarAdmin(Admin bean){
		Object ent = em.merge(bean);
		System.out.println("atualizando");
		em.persist(ent);
	}
	
	
	
	public void deletarAdmin(Admin bean) {
		Object ent = em.merge(bean);
		em.remove(ent);
	}
	
	
	public List<Pessoa> listar()
	{
		List<Pessoa> pessoa = null;
		try{
		Query query = em.createQuery("select p from Pessoa p where tipo ='1'");
		pessoa = query.getResultList();
		
		}catch(Exception e)
		{
			e.printStackTrace();
		}
		return pessoa;
	}
	
	public void salvar(Pessoa bean) {
	   
		if(em == null)
		{
			System.out.println("nulll");
		}else{System.out.println("aberta");
			
//			bean.setTipo(em.find(Tipo.class, bean.getTipo().getIdTipo()));
			
//			System.out.println(bean.getTipo().getDescTipo());
			
//			bean.getTipo().getPessoas().add(bean);		
		em.persist(bean);
		}
		
	}
	


	


}
